package com.yelink.metrics.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yelink.metrics.core.domain.TargetModel;
import com.yelink.metrics.core.domain.BaseMetricsEntity;

import java.util.List;

/**
 * @author idea
 */
public interface BaseMetricsService<T extends BaseMetricsEntity> extends IService<T> {


    /**
     * 通过uniCode新增/更新
     * @param results 数据集
     */
    void saveOrUpdateBatchByUnique(List<T> results);


    // -------------- 处理相关 ---------------

    /**
     * 获取指标处理的方法名
     * @return 方法名
     */
    String getTargetName();
    /**
     * 处理指标
     * @param targetModel 指标模型
     * @return 本次指标计算的结果集
     */
     List<T> deal(TargetModel targetModel);

}
